The present invention relates to user interfaces and more particularly to the control of events associated with user interfaces.
Conventional data processing systems with graphic user interfaces typically utilize a pointing device, such as a mouse, trackball, light pen, tablet or the like, to move a pointer which is displayed on a display of the data processing system. Typically, elements of the graphic user interface, such as buttons, scroll bars, folder or portfolio tabs, hyperlinks, menus or the like, are defined such that selection of these elements results in the triggering of an event. Furthermore, merely moving a pointer onto a region of a display associated with an element may trigger an event.
For example, for a button user interface element, an xe2x80x9centerxe2x80x9d event may be triggered when the pointing device is placed within the bounds of the button. The enter event may be utilized in various ways, however, one use of the enter event is to initiate a timer. Upon expiration of the timer, a tool tip or other pop-up graphic is displayed to the user. Typically, such a timer is a fixed value and the tool tip is displayed after a predefined time of pointer inactivity after the enter event has been triggered. Thus, after the timer expires, an xe2x80x9cactivatexe2x80x9d event may be triggered to display the tool tip. After another timer expires, a xe2x80x9cdeactivatexe2x80x9d event may be triggered to terminate display of the tool tip. Finally, an xe2x80x9cexitxe2x80x9d event may be triggered when the pointing device is moved outside the bounds of the button.
As described above, the triggering of events may result in changes to the user interface or other such actions being taken. These events typically have a fixed relationship to pointer positioning on a display. In other words, the events are typically either triggered immediately upon the pointer being in a particular location or they are triggered by the pointer being in a location for a fixed delay period.
For example, as the pointer is moved across the display, events may be triggered immediately upon pointer movement. This may result in the display of unwanted information, such as tool tips which are not of interest, or may result in unintended events occurring based on minor pointer movements. For example, when the pointer is placed over a resize element of a display, the pointer icon may change from an arrow to a double-ended arrow to indicate that the pointer performs the resizing function. This change may be immediate upon the pointer entering the resize element and then change back to the arrow immediately upon exiting the resize element. Such changes may be distracting to the user if the user does not want to perform the resize operation.
A further example may be seen in a user interface which has a portfolio paradigm where information is organized and displayed in xe2x80x9cportfoliosxe2x80x9d which are windows or frames of, often related, information or elements. In such portfolio paradigms, the whole portfolio typically may be xe2x80x9cmaximizedxe2x80x9d or restored from a minimized setting by positioning the pointing device on a xe2x80x9ctabxe2x80x9d for the portfolio. When the pointing device enters the tab element, the portfolio is maximized or restored to the previous display size. The user may then view or manipulate the information in the portfolio. When the user moves the pointer outside the portfolio, the portfolio may immediately minimize and return to only displaying the xe2x80x9ctabxe2x80x9d representation of the portfolio. Difficulties may occur, however, if user interface elements are placed at the edges of the portfolio as a user may xe2x80x9covershootxe2x80x9d the element and move the pointer outside the portfolio. The portfolio would then minimize and the user would need to restore the portfolio to perform the desired operation.
A similar difficulty may be associated with the task bar in Windows98(copyright) from Microsoft Corporation, Redmond, WA. The task bar of Windows98(copyright) may be hidden such that when the pointing device is moved to the edge of the display where the task bar is hidden the task bar is displayed. When the pointer is moved off of the task bar, the task bar is hidden. A user may inadvertently move the pointer off of the task bar causing the task bar to hide, thus, requiring the user to move the pointer to the edge of the display to re-display the task bar. Such unintended consequences of pointer movement may be frustrating to the users and, therefore, may reduce to overall effectiveness of the user interface.
Embodiments of the present invention include methods, systems and computer program products which provide for controlling events associated with an element of a user interface by determining a characteristic(s) of pointer movement of a pointing device and adjusting a condition(s) for triggering an event associated with the element based on the determined characteristic of pointer movement. The triggering of the event is controlled utilizing the adjusted condition. Thus, by determining characteristics of pointer movement, a user""s intent may be inferred from that pointer movement and, based on the inferred intent, the conditions for triggering of events may be adjusted consistent with such inferred intent.
In particular embodiments of the present invention, the condition which is adjusted may be a timing associated with triggering the event. In further embodiments, the characteristic evaluated may be direction of movement of the pointer, direction of movement of the pointer with relation to the element, speed of movement of the pointer and/or acceleration of movement of the pointer.
In still further embodiments of the present invention, a region of a display associated with the element is defined. It is determined if the pointer is within the defined region. The determination of the characteristic(s) of pointer movement is carried out if the pointer is within the defined region.
In particular embodiments of the present invention, the characteristic(s) is determined and the condition(s) is adjusted by determining a direction of movement of the pointer, determining if the direction of movement of the pointer is toward the element, determining a speed of the pointer and determining an acceleration of the pointer. A delay associated with triggering the event is reduced if the direction of movement is toward the element, the speed is below a predefined threshold and the acceleration of the pointer indicates that the pointer is decelerating.
In such embodiments, the event may be displaying a tool tip, restoration of a graphic user interface display window, maximization of a graphic user interface display window, selection of the element, placing focus on the element or change of a graphic representation of the pointer. Furthermore, the determination of a direction of movement of the pointer, determination of a speed of the pointer and determination of an acceleration of the pointer may only be carried out if the direction of movement of the pointer is toward the element, the speed of the pointer is below the predefined threshold or the acceleration of the pointer is decelerating.
In particular embodiments, the determination of the speed of the pointer is only carried out if the direction of movement of the pointer is toward the element and the determination of an acceleration of the pointer is only carried out if the speed of the pointer is below the predefined threshold. In still further embodiments of the present invention, a region of a display associated with the element is defined and the determination of a direction of movement of the pointer, a speed of the pointer and an acceleration of the pointer are only carried out if the pointer is within the defined region.
In still additional embodiments of the present invention, the determination of a characteristic(s) and adjusting of a condition(s) may be provided by determining a direction of movement of the pointer, determining if the direction of movement of the pointer is away from the element, determining a speed of the pointer, and determining an acceleration of the pointer. A delay associated with triggering the event is increased if the direction of movement is away from the element, the speed is below a predefined threshold and the acceleration of the pointer indicates that the pointer is decelerating. In such embodiments, the event may be closing a graphic user interface display window and the element may be a close selection button.
Furthermore, the determination of a direction of movement of the pointer, a speed of the pointer or an acceleration of the pointer may only be carried out if one or more of the direction of movement of the pointer is away from the element, the speed of the pointer is below the predefined threshold or the acceleration of the pointer is decelerating. In particular embodiments, the determination of the speed of the pointer is only carried out if the direction of movement of the pointer is away from the element and the determination of the acceleration of the pointer is only carried out if the speed of the pointer is below the predefined threshold. Additionally, a region of a display associated with the element may be defined and the determination of a direction of movement of the pointer, a speed of the pointer and an acceleration of the pointer may be carried out only if the pointer is within the defined region.
In still further embodiments of the present invention, the characteristic is speed and the adjusting of a condition may include preventing resetting of a timer associated with triggering the event if the speed of movement of the pointing device is greater than zero and less than a predefined threshold speed.
In additional embodiments of the present invention, the adjustment of a condition(s) for triggering an event associated with the element based on the determined characteristic of pointer movement is provided by evaluating the characteristic of pointer movement based on a predefined evaluation criteria and adjusting the condition if the predefined evaluation criteria is met. Furthermore, pointer movement may be tracked so as to establish a history of pointer movement. The predefined evaluation criteria may also be revised based on the history of pointer movement so as to dynamically update the predefined evaluation criteria based on the history of pointer movement. Alternatively, the predefined evaluation criteria may also be adjusted based on characteristics of the user interface element, such as the size, shape and location of the user interface element on the display.
In still further embodiments, the condition may be adjusted proportional to the determined characteristic of pointer movement.
While the invention has been described above primarily with respect to the method aspects of the invention, both systems and/or computer program products are also provided.